package cn.lzy.demo;

import cn.lzy.demo.entity.User;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;

/**
 * @Description DefaultListableBeanFactory容器用法：通过 xml 方式读取 bean
 * @Author lzy
 * @Date 2024/3/8 16:17
 * @Version
 **/
public class DefaultListableFactoryBeanOfXmlDemo {

    public static void main(String[] args) {
        // 创建一个容器，此时容器是空的，没有任何 bean
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();

        // 这个单纯就只是一个 XML 文件的加载工具
        // (创建对象时，传入 BeanFactory，是因为 XML 文件加载完成之后，要把 Bean 注册到容器中去，即注册到 beanFactory)
        XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
        //加载配置文件，这个方法最终会触发 XML 文件解析，将 Bean 读取出来并注册到 beanFactory 中
        reader.loadBeanDefinitions("beans.xml");

        User user = beanFactory.getBean(User.class);
        System.out.println(user);
    }
}
